﻿using System;

namespace JiShiBen.Core.DataStructure
{
	//public abstract class DoublyLinkedListNode<T> : IDisposable where T : DoublyLinkedListNode<T>
	//{

	//    #region Constructor

	//    protected DoublyLinkedListNode(DoublyLinkedList<T> list)
	//    {
	//        if (list == null)
	//            throw new ArgumentNullException("list");

	//        Identification = list.GetNextUniqueIdentification();
	//    }

	//    #endregion


	//    #region Protected Members

	//    protected abstract void Dispose(bool disposing);

	//    #endregion


	//    #region Public Members

	//    #region Properties

	//    public int Identification { get; private set; }

	//    public abstract T Previous { get; set; }

	//    public abstract T Next { get; set; }

	//    #endregion


	//    #region Methods

	//    public abstract T CastToChildType();

	//    public override bool Equals(object obj)
	//    {
	//        var temp = obj as DoublyLinkedListNode<T>;
	//        if (Equals(temp, null)) return false;

	//        return temp.GetHashCode() == GetHashCode();
	//    }

	//    public override int GetHashCode()
	//    {
	//        return Identification;
	//    }

	//    public void Dispose()
	//    {
	//        Dispose(true);
	//    }

	//    #endregion

	//    #endregion
	//}
}
